REALLOC

            
#include <malloc.h>    требуется только для объявления функции
char *realloc(ptr,size);
char *ptr;             указатель  на ранее захваченный блок памяти
unsigned size;         новый размер в байтах

Описание.
Функция realloc изменяет размер ранее захваченного блока памяти. Аргумент ptr указывает на начало блока. Аргумент size задает новый размер блока в байтах. Содержимое блока не изменяется. Аргумент ptr может указывать на блок, который должен быть освобожден прежде, чем последуют вызовы calloc, halloc, malloc, realloc .

Возвращаемое значение.
Функция realloc возвращает char-указатель на перезахваченный блок памяти. Блок может быть передвинут, если его размеры изменены, поэтому аргумент ptr для функции realloc не обязательно должен быть таким же, как и возвращаемое значение.
Возвращается значение NULL , если памяти недостаточно, чтобы расширить блок к заданному размеру. Если это происходит, то первоначальный блок освобождается.
В памяти, на которую указывает возвращаемое значение, гарантировано выравнивание для хранения любого типа объекта. Чтобы получить указатель на тип, отличный от char , используется преобразователь типа возвращаемого значения.

Пример:

            #include <malloc.h>
            #include <stdio.h>
            
            char *alloc;
            
            /*  выбирает  достаточно  большое  пространство для 50
            символов */
            
            alloc=malloc(50*sizeof(char));
            .
            .
            .
            
               /* перезахватывает блок, который содержит 100 символов */
            if (alloc != NULL)
               alloc=realoc(alloc,100*sizeof(char));
         
Hosted by uCoz